package com.xbzl.cly_demo.mqtt.data;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.math.BigDecimal;
import java.util.List;

public class VehicleData {
    @JsonProperty("header")
    private Header header;

    @JsonProperty("body")
    private Body body;

    @JsonProperty("timestamp3")
    private Long timestamp3;

    @JsonProperty("timestamp4")
    private Long timestamp4;

    // Getters and setters

    public static class Header {
        private String prefix;
        private int dataLen;
        private String dataCategory;
        private String ver;
        private Long timestamp;
        private String ctl;

        // Getters and setters
    }

    public static class Body {
        private String vehicleId;
        private Long messageId;
        private Long timestampGNSS;
        private Double velocityGNSS;
        private Position position;
        private Double heading;
        private int tapPos;
        private int steeringAngle;
        private Double velocityCAN;
        private Double accelerationLon;
        private Double accelerationLat;
        private Double accelerationVer;
        private Double yawRate;
        private int accelPos;
        private int engineSpeed;
        private int engineTorque;
        private int brakeFlag;
        private int brakePos;
        private int brakePressure;
        private int fuelConsumption;
        private String driveMode;
        private Position destLocation;
        private int passPointsNum;
        private List<Position> passPoints;
        private Ext ext;
        private int currentIndex;

        // Getters and setters

        public static class Position {
            private BigDecimal longitude;
            private BigDecimal latitude;
            private Integer elevation;

            // Getters and setters
        }

        public static class Ext {
            private String deviceName;
            private String plateNo;
            private String vehicleUsage;
            private String engineType;
            private Integer dataSource;

            // Getters and setters
        }
    }
}
